﻿namespace Rail.Net.Core.Interfaces.Data
{
    public interface IDalContext : IUnitOfWork
    {
        IRuRepository RuRepository { get; }

        IStationRepository StationRepository { get; }

        IRelationRepository RelationRepository { get; }

        IRelationRuRepository RelationRuRepository { get; }

        IRelationDescriptionRepository RelationDescriptionRepository { get; }

        IDistanceRepository DistanceRepository { get; }

        IPriceDistanceRepository PriceDistanceRepository { get; }

        IPriceSerialRepository PriceSerialRepository { get; }

        IPriceDomesticRepository PriceDomesticRepository { get; }

        IContengentTrainLabelRepository ContengentTrainLabelRepository { get; set; }
        
        IContengentTrainNumberRepository ContengentTrainNumberRepository { get; set; }
        
        IGlobalTrainLabelRepository GlobalTrainLabelRepository { get; set; }
        
        IGlobalTrainNumberRepository GlobalTrainNumberRepository { get; set; }
        
        IReservableTrainLabelRepository ReservableTrainLabelRepository { get; set; }
        
        IReservableTrainNumberRepository ReservableTrainNumberRepository { get; set; }

        IVirtualRuTrainNumberRepository VirtualRuTrainNumberRepository { get; set; }

        IAdministrationRepository AdministrationRepository { get; set; }

        ITariffRepository TariffRepository { get; set; }

        IPaymentOptionRepository PaymentOptionRepository { get; set; }

        IDiscountOptionRepository DiscountOptionRepository { get; set; }
    }
}